#ifndef VERTEX_H
#define VERTEX_H
#include "cuda.h"
#include "global_object.h"
#include "cuda_runtime.h"
#include "Vector3.cu"

class Vertex : public DeviceObject
{
public:

	Vector3 loc;
	Vector3 n;
	Vector3 tex;

	inline __host__ __device__  Vertex(){
		size = sizeof(Vertex);
	}
	
	inline __host__ __device__  Vertex(Vector3 location, Vector3 normal, Vector3 texture) {
		loc = location;
		n = normal;
		tex = texture;
		size = sizeof(Vertex);
	}

	inline __host__ __device__  ~Vertex(void){
	}

	inline __host__ __device__  void print(){
		printf("----------\n");
		printf("Location: %.3f | %.3f | %.3f\n", loc[0], loc[1], loc[2]);
		printf("Normal:   %.3f | %.3f | %.3f\n", n[0], n[1], n[2]);
		printf("Texture:  %.3f | %.3f | %.3f\n", tex[0], tex[1], tex[2]);
		printf("----------\n");
	}

};

#endif
